setwd("/Users/chengg/Google Drive/EPICON/Mycobiome/Fungal ITS/statistic/Total.fungi")

library(vegan)
library(betapart)
library(colorRamps)
source("weighted Fst function.r")
rm(list = ls())
load("EPICON.data.preparation.RC.bNTI.ted.2019.04.19.Rdata")
mean(Lagg[Lagg$TP<8 & Lagg$Habitat=="Leaf" & Lagg$Treatment=="Control",]$jtudisper)
## [1] 0.4417626
mean(Lagg[Lagg$TP>8 & Lagg$Habitat=="Leaf" & Lagg$Treatment=="Control",]$jtudisper)
## [1] 0.3218303
# bray
fung1<-fung[env$Treatment1=="Control"& env$TP>0,]
env1<-env[env$Treatment1=="Control"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Control" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Control" & env1$Habitat== i,]
  fung.dist<-vegdist(decostand(fungx,"hellinger"),"bray")
  #fungx[fungx>0]=1 
  #fd<-beta.pair(fungx, index.family = "jaccard")
  #fung.dist<-fd$beta.jtu
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[1:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[1:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq  Mean Sq F value    Pr(>F)    
## Groups    16 1.12929 0.070581  12.542 3.544e-16 ***
## Residuals 85 0.47834 0.005628                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1    5.2136  5.2136  43.692 0.30407  0.001 ***
## Residuals 100   11.9326  0.1193         0.69593           
## Total     101   17.1462                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq   Mean Sq F value    Pr(>F)    
## Groups    16 0.18236 0.0113977  7.2263 3.122e-10 ***
## Residuals 85 0.13407 0.0015773                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1    3.7586  3.7586  37.717 0.27387  0.001 ***
## Residuals 100    9.9654  0.0997         0.72613           
## Total     101   13.7240                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq    Mean Sq F value Pr(>F)
## Groups    16 0.017296 0.00108099  1.1683 0.3099
## Residuals 85 0.078645 0.00092523               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1    5.2329  5.2329  48.077 0.32468  0.001 ***
## Residuals 100   10.8845  0.1088         0.67532           
## Total     101   16.1174                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value   Pr(>F)   
## Groups    16 0.049327 0.0030829  2.4884 0.003714 **
## Residuals 85 0.105308 0.0012389                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1    1.3691 1.36908  12.583 0.11176  0.001 ***
## Residuals 100   10.8806 0.10881         0.88824           
## Total     101   12.2497                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# jaccard
fung1<-fung[env$Treatment1=="Control"& env$TP>0,]
env1<-env[env$Treatment1=="Control"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Control" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Control" & env1$Habitat== i,]
  fung.dist<-vegdist(decostand(fungx,"hellinger"),"jaccard")
  #fungx[fungx>0]=1 
  #fd<-beta.pair(fungx, index.family = "jaccard")
  #fung.dist<-fd$beta.jtu
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[1:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[1:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq  Mean Sq F value    Pr(>F)    
## Groups    16 1.13877 0.071173  16.885 < 2.2e-16 ***
## Residuals 85 0.35828 0.004215                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model     R2 Pr(>F)    
## envx$TP     1    5.9582  5.9582  30.634 0.2345  0.001 ***
## Residuals 100   19.4495  0.1945         0.7655           
## Total     101   25.4077                 1.0000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq  Mean Sq F value    Pr(>F)    
## Groups    16 0.19654 0.012284  7.6017 1.027e-10 ***
## Residuals 85 0.13736 0.001616                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1    4.0316  4.0316  21.589 0.17756  0.001 ***
## Residuals 100   18.6744  0.1867         0.82244           
## Total     101   22.7060                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq    Mean Sq F value Pr(>F)
## Groups    16 0.017209 0.00107557  1.1708 0.3079
## Residuals 85 0.078086 0.00091866               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1    5.3773  5.3773  26.716 0.21083  0.001 ***
## Residuals 100   20.1280  0.2013         0.78917           
## Total     101   25.5054                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value   Pr(>F)   
## Groups    16 0.042984 0.0026865  2.5662 0.002783 **
## Residuals 85 0.088985 0.0010469                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1    1.6828 1.68284   8.387 0.07738  0.001 ***
## Residuals 100   20.0648 0.20065         0.92262           
## Total     101   21.7477                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# turnover
fung1<-fung[env$Treatment1=="Control"& env$TP>0,]
env1<-env[env$Treatment1=="Control"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Control" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Control" & env1$Habitat== i,]
  #fung.dist<-vegdist(decostand(fungx,"hellinger"),"bray")
  fungx[fungx>0]=1 
  fd<-beta.pair(fungx, index.family = "jaccard")
  fung.dist<-fd$beta.jtu
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[1:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[1:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq  Mean Sq F value    Pr(>F)    
## Groups    16 0.52992 0.033120  7.5913 1.058e-10 ***
## Residuals 85 0.37084 0.004363                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1     4.027   4.027  22.494 0.18363  0.001 ***
## Residuals 100    17.903   0.179         0.81637           
## Total     101    21.930                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups    16 0.058778 0.0036736  1.2751 0.2321
## Residuals 85 0.244884 0.0028810               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1    3.7309  3.7309  23.682 0.19147  0.001 ***
## Residuals 100   15.7543  0.1575         0.80853           
## Total     101   19.4852                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups    16 0.038772 0.0024232   1.053 0.4122
## Residuals 85 0.195617 0.0023014               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1    3.7137  3.7137  21.666 0.17808  0.001 ***
## Residuals 100   17.1407  0.1714         0.82192           
## Total     101   20.8544                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value    Pr(>F)    
## Groups    16 0.064615 0.0040384  3.5204 7.955e-05 ***
## Residuals 85 0.097508 0.0011472                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1     1.091 1.09096  6.3952 0.06011  0.001 ***
## Residuals 100    17.059 0.17059         0.93989           
## Total     101    18.150                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# nestedness
fung1<-fung[env$Treatment1=="Control"& env$TP>0,]
env1<-env[env$Treatment1=="Control"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Control" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Control" & env1$Habitat== i,]
  #fung.dist<-vegdist(decostand(fungx,"hellinger"),"bray")
  fungx[fungx>0]=1 
  fd<-beta.pair(fungx, index.family = "jaccard")
  fung.dist<-fd$beta.jne
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  
  plot(bd, col=blue2red(17)[1:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[1:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups    16 0.020609 0.0012881  1.0685 0.3973
## Residuals 85 0.102462 0.0012054               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs  MeanSqs F.Model      R2 Pr(>F)    
## envx$TP     1   0.07362 0.073624  18.313 0.15478  0.001 ***
## Residuals 100   0.40203 0.004020         0.84522           
## Total     101   0.47566                  1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq    Mean Sq F value Pr(>F)
## Groups    16 0.014805 0.00092531  1.2528 0.2471
## Residuals 85 0.062782 0.00073861               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs   MeanSqs F.Model       R2 Pr(>F)
## envx$TP     1  -0.07138 -0.071378 -15.686 -0.18604      1
## Residuals 100   0.45505  0.004550          1.18604       
## Total     101   0.38367                    1.00000
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq    Mean Sq F value Pr(>F)
## Groups    16 0.009969 0.00062307  0.9983 0.4667
## Residuals 85 0.053053 0.00062415               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs   MeanSqs F.Model       R2 Pr(>F)
## envx$TP     1 -0.039555 -0.039555 -17.571 -0.21317      1
## Residuals 100  0.225109  0.002251          1.21317       
## Total     101  0.185554                    1.00000
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq    Mean Sq F value Pr(>F)
## Groups    16 0.009838 0.00061490  1.5158  0.113
## Residuals 85 0.034481 0.00040566               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##            Df SumsOfSqs    MeanSqs F.Model       R2 Pr(>F)
## envx$TP     1  -0.00435 -0.0043503 -4.0087 -0.04176      1
## Residuals 100   0.10852  0.0010852          1.04176       
## Total     101   0.10417                     1.00000

# 

# bray
fung1<-fung[env$Treatment1=="Pre_flowering_drought"& env$TP>0,]
env1<-env[env$Treatment1=="Pre_flowering_drought"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Pre_flowering_drought" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Pre_flowering_drought" & env1$Habitat== i,]
  fung.dist<-vegdist(decostand(fungx,"hellinger"),"bray")
  #fungx[fungx>0]=1 
  #fd<-beta.pair(fungx, index.family = "jaccard")
  #fung.dist<-fd$beta.jtu
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[3:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[3:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq  Mean Sq F value    Pr(>F)    
## Groups    14 0.68381 0.048844  18.586 < 2.2e-16 ***
## Residuals 75 0.19710 0.002628                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    4.4096  4.4096  42.556 0.32596  0.001 ***
## Residuals 88    9.1184  0.1036         0.67404           
## Total     89   13.5280                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value    Pr(>F)    
## Groups    14 0.077845 0.0055604  4.5858 6.491e-06 ***
## Residuals 75 0.090939 0.0012125                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    2.8371 2.83713  32.667 0.27072  0.001 ***
## Residuals 88    7.6428 0.08685         0.72928           
## Total     89   10.4799                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value  Pr(>F)  
## Groups    14 0.042857 0.0030612  1.9335 0.03574 *
## Residuals 75 0.118740 0.0015832                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    2.8944 2.89439  27.361 0.23717  0.001 ***
## Residuals 88    9.3092 0.10579         0.76283           
## Total     89   12.2036                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups    14 0.039147 0.0027962  0.8791 0.5837
## Residuals 75 0.238556 0.0031807               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.6457 0.64567   6.232 0.06614  0.001 ***
## Residuals 88    9.1173 0.10361         0.93386           
## Total     89    9.7629                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# jaccard
fung1<-fung[env$Treatment1=="Pre_flowering_drought"& env$TP>0,]
env1<-env[env$Treatment1=="Pre_flowering_drought"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Pre_flowering_drought" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Pre_flowering_drought" & env1$Habitat== i,]
  fung.dist<-vegdist(decostand(fungx,"hellinger"),"jaccard")
  #fungx[fungx>0]=1 
  #fd<-beta.pair(fungx, index.family = "jaccard")
  #fung.dist<-fd$beta.jtu
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[3:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[3:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq  Mean Sq F value    Pr(>F)    
## Groups    14 0.76251 0.054465  23.286 < 2.2e-16 ***
## Residuals 75 0.17542 0.002339                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    5.2063  5.2063  28.642 0.24556  0.001 ***
## Residuals 88   15.9957  0.1818         0.75444           
## Total     89   21.2020                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value    Pr(>F)    
## Groups    14 0.085245 0.0060889  4.7351 4.088e-06 ***
## Residuals 75 0.096444 0.0012859                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    3.4643  3.4643  20.293 0.18739  0.001 ***
## Residuals 88   15.0229  0.1707         0.81261           
## Total     89   18.4872                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value  Pr(>F)  
## Groups    14 0.040054 0.0028610  1.9757 0.03128 *
## Residuals 75 0.108606 0.0014481                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model     R2 Pr(>F)    
## envx$TP    1    3.2589  3.2589  16.562 0.1584  0.001 ***
## Residuals 88   17.3155  0.1968         0.8416           
## Total     89   20.5744                 1.0000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups    14 0.029557 0.0021112  0.8911 0.5713
## Residuals 75 0.177685 0.0023691               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.9102 0.91022  4.7216 0.05092  0.001 ***
## Residuals 88   16.9646 0.19278         0.94908           
## Total     89   17.8748                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# turnover
fung1<-fung[env$Treatment1=="Pre_flowering_drought"& env$TP>0,]
env1<-env[env$Treatment1=="Pre_flowering_drought"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Pre_flowering_drought" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Pre_flowering_drought" & env1$Habitat== i,]
  #fung.dist<-vegdist(decostand(fungx,"hellinger"),"bray")
  fungx[fungx>0]=1 
  fd<-beta.pair(fungx, index.family = "jaccard")
  fung.dist<-fd$beta.jtu
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[3:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[3:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq  Mean Sq F value    Pr(>F)    
## Groups    14 0.52369 0.037406  7.0397 5.392e-09 ***
## Residuals 75 0.39852 0.005314                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1     2.803  2.8030  17.378 0.16491  0.001 ***
## Residuals 88    14.194  0.1613         0.83509           
## Total     89    16.997                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups    14 0.079233 0.0056595  1.4347 0.1586
## Residuals 75 0.295865 0.0039449               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    2.9114 2.91143  19.937 0.18471  0.001 ***
## Residuals 88   12.8505 0.14603         0.81529           
## Total     89   15.7620                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups    14 0.035766 0.0025547  0.8698 0.5934
## Residuals 75 0.220277 0.0029370               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    1.9958 1.99575  12.108 0.12095  0.001 ***
## Residuals 88   14.5051 0.16483         0.87905           
## Total     89   16.5009                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups    14 0.036764 0.0026260  1.1822 0.3065
## Residuals 75 0.166592 0.0022212               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.6974 0.69742  4.3252 0.04685  0.001 ***
## Residuals 88   14.1897 0.16125         0.95315           
## Total     89   14.8871                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# nestedness
fung1<-fung[env$Treatment1=="Pre_flowering_drought"& env$TP>0,]
env1<-env[env$Treatment1=="Pre_flowering_drought"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Pre_flowering_drought" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Pre_flowering_drought" & env1$Habitat== i,]
  #fung.dist<-vegdist(decostand(fungx,"hellinger"),"bray")
  fungx[fungx>0]=1 
  fd<-beta.pair(fungx, index.family = "jaccard")
  fung.dist<-fd$beta.jne
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[3:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[3:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq    Mean Sq F value  Pr(>F)  
## Groups    14 0.025169 0.00179778  1.8644 0.04437 *
## Residuals 75 0.072320 0.00096427                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs  MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1   0.16009 0.160091  30.765 0.25904  0.001 ***
## Residuals 88   0.45793 0.005204         0.74096           
## Total     89   0.61802                  1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value   Pr(>F)   
## Groups    14 0.041644 0.0029746  2.7577 0.002431 **
## Residuals 75 0.080899 0.0010787                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs   MeanSqs F.Model       R2 Pr(>F)
## envx$TP    1  -0.06717 -0.067167 -18.317 -0.26285      1
## Residuals 88   0.32270  0.003667          1.26285       
## Total     89   0.25553                    1.00000
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq    Mean Sq F value  Pr(>F)  
## Groups    14 0.021875 0.00156247  1.6505 0.08517 .
## Residuals 75 0.070999 0.00094665                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs   MeanSqs F.Model       R2 Pr(>F)
## envx$TP    1 -0.033275 -0.033275 -9.5087 -0.12114      1
## Residuals 88  0.307955  0.003499          1.12114       
## Total     89  0.274679                    1.00000
## Analysis of Variance Table
## 
## Response: Distances
##           Df    Sum Sq    Mean Sq F value Pr(>F)
## Groups    14 0.0054412 0.00038866  0.9835 0.4783
## Residuals 75 0.0296389 0.00039519               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs    MeanSqs F.Model       R2 Pr(>F)
## envx$TP    1 -0.003232 -0.0032316 -2.8542 -0.03352      1
## Residuals 88  0.099637  0.0011322          1.03352       
## Total     89  0.096405                     1.00000

##
# bray
fung1<-fung[env$Treatment1=="Post_flowering_drought"& env$TP>0,]
env1<-env[env$Treatment1=="Post_flowering_drought"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Post_flowering_drought" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Post_flowering_drought" & env1$Habitat== i,]
  fung.dist<-vegdist(decostand(fungx,"hellinger"),"bray")
  #fungx[fungx>0]=1 
  #fd<-beta.pair(fungx, index.family = "jaccard")
  #fung.dist<-fd$beta.jtu
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[8:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[8:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq   Mean Sq F value    Pr(>F)    
## Groups     9 0.17847 0.0198298  5.5192 2.942e-05 ***
## Residuals 50 0.17964 0.0035929                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.7051 0.70512   13.38 0.18744  0.001 ***
## Residuals 58    3.0566 0.05270         0.81256           
## Total     59    3.7618                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups     9 0.015321 0.0017023  1.1565 0.3428
## Residuals 50 0.073594 0.0014719               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.3579 0.35788  6.2749 0.09763  0.001 ***
## Residuals 58    3.3079 0.05703         0.90237           
## Total     59    3.6658                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq   Mean Sq F value Pr(>F)
## Groups     9 0.01174 0.0013044  1.1153 0.3697
## Residuals 50 0.05848 0.0011696               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.6827 0.68269  7.5284 0.11489  0.001 ***
## Residuals 58    5.2596 0.09068         0.88511           
## Total     59    5.9423                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq   Mean Sq F value Pr(>F)
## Groups     9 0.01841 0.0020456  1.0032   0.45
## Residuals 50 0.10196 0.0020391               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.4090 0.40896  4.0263 0.06491  0.001 ***
## Residuals 58    5.8911 0.10157         0.93509           
## Total     59    6.3001                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# jaccard
fung1<-fung[env$Treatment1=="Post_flowering_drought"& env$TP>0,]
env1<-env[env$Treatment1=="Post_flowering_drought"& env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Post_flowering_drought" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Post_flowering_drought" & env1$Habitat== i,]
  fung.dist<-vegdist(decostand(fungx,"hellinger"),"jaccard")
  #fungx[fungx>0]=1 
  #fd<-beta.pair(fungx, index.family = "jaccard")
  #fung.dist<-fd$beta.jtu
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[8:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[8:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq   Mean Sq F value    Pr(>F)    
## Groups     9 0.22856 0.0253957  5.2849 4.679e-05 ***
## Residuals 50 0.24027 0.0048053                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    1.1540 1.15402   10.38 0.15179  0.001 ***
## Residuals 58    6.4486 0.11118         0.84821           
## Total     59    7.6026                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups     9 0.020118 0.0022353  1.1492 0.3475
## Residuals 50 0.097259 0.0019452               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.6251 0.62505   4.966 0.07887  0.001 ***
## Residuals 58    7.3002 0.12587         0.92113           
## Total     59    7.9253                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups     9 0.012154 0.0013504  1.1543 0.3442
## Residuals 50 0.058496 0.0011699               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.9378 0.93777  5.2882 0.08356  0.001 ***
## Residuals 58   10.2852 0.17733         0.91644           
## Total     59   11.2229                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups     9 0.016116 0.0017907  1.0205 0.4369
## Residuals 50 0.087734 0.0017547               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.5659 0.56591  2.9595 0.04855  0.001 ***
## Residuals 58   11.0905 0.19121         0.95145           
## Total     59   11.6564                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# turnover
fung1<-fung[env$Treatment1=="Post_flowering_drought" & env$TP>0,]
env1<-env[env$Treatment1=="Post_flowering_drought" & env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Post_flowering_drought" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Post_flowering_drought" & env1$Habitat== i,]
  #fung.dist<-vegdist(decostand(fungx,"hellinger"),"bray")
  fungx[fungx>0]=1 
  fd<-beta.pair(fungx, index.family = "jaccard")
  fung.dist<-fd$beta.jtu
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[8:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[8:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq   Mean Sq F value    Pr(>F)    
## Groups     9 0.25513 0.0283481  3.9941 0.0006833 ***
## Residuals 50 0.35487 0.0070974                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs  MeanSqs F.Model       R2 Pr(>F)
## envx$TP    1   -0.3048 -0.30479 -2.8554 -0.05178      1
## Residuals 58    6.1910  0.10674          1.05178       
## Total     59    5.8862                   1.00000
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq  Mean Sq F value Pr(>F)
## Groups     9 0.048078 0.005342  1.1056 0.3762
## Residuals 50 0.241600 0.004832               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.5261 0.52605  4.0246 0.06489  0.001 ***
## Residuals 58    7.5812 0.13071         0.93511           
## Total     59    8.1073                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups     9 0.017583 0.0019537  0.9064 0.5271
## Residuals 50 0.107770 0.0021554               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1    0.6085 0.60846  3.4969 0.05686  0.001 ***
## Residuals 58   10.0920 0.17400         0.94314           
## Total     59   10.7004                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq    Mean Sq F value Pr(>F)
## Groups     9 0.005374 0.00059706  0.2732 0.9791
## Residuals 50 0.109267 0.00218533               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model     R2 Pr(>F)    
## envx$TP    1    0.3794 0.37940  2.3223 0.0385  0.001 ***
## Residuals 58    9.4756 0.16337         0.9615           
## Total     59    9.8550                 1.0000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

# nestedness
fung1<-fung[env$Treatment1=="Post_flowering_drought" & env$TP>0,]
env1<-env[env$Treatment1=="Post_flowering_drought" & env$TP>0,]
par(mfrow=c(1,4),mar=c(2, 2, 0.5, 0.5))
for (i in c("Leaf","Root", "Rhizosphere", "Soil")){
  fungx<-fung1[env1$Treatment1== "Post_flowering_drought" & env1$Habitat== i,]
  envx<-env1[env1$Treatment1== "Post_flowering_drought" & env1$Habitat== i,]
  #fung.dist<-vegdist(decostand(fungx,"hellinger"),"bray")
  fungx[fungx>0]=1 
  fd<-beta.pair(fungx, index.family = "jaccard")
  fung.dist<-fd$beta.jne
  bd<-betadisper(fung.dist,factor(envx$TP))
  print (anova(bd)); print(adonis(fung.dist~envx$TP))
  plot(bd, col=blue2red(17)[8:17], 
       hull = FALSE,cex = 0.8,label.cex = 0.8,
       seg.col=blue2red(17)[8:17], main="", xlab="PC1", ylab="PC2")
  #boxplot(bd)
  #print(TukeyHSD(bd))
}
## Analysis of Variance Table
## 
## Response: Distances
##           Df  Sum Sq   Mean Sq F value  Pr(>F)  
## Groups     9 0.06759 0.0075100  1.8822 0.07649 .
## Residuals 50 0.19950 0.0039901                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
## envx$TP    1   0.59236 0.59236  61.263 0.51368  0.001 ***
## Residuals 58   0.56081 0.00967         0.48632           
## Total     59   1.15317                 1.00000           
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups     9 0.010894 0.0012104  1.1003 0.3798
## Residuals 50 0.055006 0.0011001               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs    MeanSqs F.Model       R2 Pr(>F)
## envx$TP    1 -0.016041 -0.0160415 -3.0043 -0.05463      1
## Residuals 58  0.309694  0.0053396          1.05463       
## Total     59  0.293653                     1.00000
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq    Mean Sq F value Pr(>F)
## Groups     9 0.005112 0.00056795  0.7762 0.6388
## Residuals 50 0.036584 0.00073168               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs     MeanSqs  F.Model       R2 Pr(>F)
## envx$TP    1 -0.000584 -0.00058388 -0.23495 -0.00407  0.797
## Residuals 58  0.144140  0.00248517           1.00407       
## Total     59  0.143556                       1.00000
## Analysis of Variance Table
## 
## Response: Distances
##           Df   Sum Sq   Mean Sq F value Pr(>F)
## Groups     9 0.015895 0.0017661  1.2365 0.2948
## Residuals 50 0.071412 0.0014282               
## 
## Call:
## adonis(formula = fung.dist ~ envx$TP) 
## 
## Permutation: free
## Number of permutations: 999
## 
## Terms added sequentially (first to last)
## 
##           Df SumsOfSqs    MeanSqs F.Model       R2 Pr(>F)
## envx$TP    1 -0.004071 -0.0040710 -1.6924 -0.03006  0.983
## Residuals 58  0.139519  0.0024055          1.03006       
## Total     59  0.135448                     1.00000